F1. FaceIt 2.0 Guide

  FaceIt deals with "program-wide" features: the main event loop, the main menu bar menus, floating palettes, modeless windows, background processing, and interactions with the Finder.  Each topic in the above "FaceIt" menu deals with one of these program-wide features.

Brief History
  FaceIt is the oldest of all FaceWare modules.  Our original product (McFace, 1986) did the types of things FaceIt now does.  Since then many tools have come along to provide similar functionality, but FaceWare has moved far beyond these competing interface builders and program managers.  FaceIt is now just a small part of the ViewIt product, and all other FaceWare modules can be used without FaceIt.

Mixing Window Types
  The FaceIt module automatically handles low-level events and only returns control to the main program when events occur that it does not know how to handle.  Most FaceWare programmers appreciate this since it dramatically reduces the size and complexity of their program "event loops".  In cases, however, where the main program must deal directly with low-level events, then FaceSt ("FaceStub") can be used in place of FaceIt.  FaceSt differs from FaceIt in that it must be fed low-level events, but this makes it possible to mix FaceWare modeless windows with other windows being managed by the main program.  See the "Hybrid Programs" topic for more info about using FaceSt to create "hybrid" programs that contain both sophisticated program-driven windows and FaceWare-driven windows.

FaceIt Command Format
  FaceIt commands are executed via the FaceIt dispatching procedure using the same format as that described under the "Commands" topic in the ViewIt Guide.

Program Resources
  All of the demo program resource files (the ".Rsrc" files) shipped with the ViewIt product contain MENU, STR#, and clut resources that are used by FaceIt but contain settings that are specific to the program:
  MENU 1001, 1002, ... = menus auto-loaded by FaceIt
  STR# 1000 = list of windows auto-initialized by FaceIt
  clut 1000 = color table used to reset program palette
All, none, or some of these resources can be included with finished programs, and their absence simply prevents the corresponding action from being performed by FaceIt when DoInit is called.  (If your program already makes use of an STR# 1000, then you can renumber ours to avoid conflicts since FaceIt searches for the STR# by name = "FaceInit".)
  In addition to the above FaceIt-related resources, program resource files typically contain all the resources belonging to LoadIt (required to call any FaceWare module), any other program-specific resources required by other modules, plus other resources used by that program (ICONs, PICTs, STR#s, FWNDs, etc.).
  What To Do:  When starting a new FaceIt-based program, use a copy of the "Minimum.Rsrc" file as a starting point for your own program-specific resource file.